/**
 * Copy right 2013 by Phan Hoàn Vũ
 * Email hoanvuphan@gmail.com
 */
package vn.universex.builder;

import japa.parser.ast.CompilationUnit;

/**
 * This interface provides the way to generate the java class that contains all it's properties. Each property is
 * represented by a public static field that can be accessed from outside easily.
 * 
 * @author Phan Hoan Vu
 * 
 */
public interface ClassBuilder {

    /**
     * This is the main method of this interface. The implementation should do all the work that's promised by this
     * interface:) --> In short: Build property container class.
     * 
     * @param n
     *            the CompilationUnit of source class.
     * @return {@link ClassBuilderResult} instance that's represented for the final result.
     */
    ClassBuilderResult build(CompilationUnit n);

}